home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 173amrg.zip / R-PC173A.MRG < prev    next >
Text File  |  1990-08-26  |  66KB  |  1,650 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against D:\172B\RBBS-PC.BAS to produce RBBS-PC.BAS
  3. * D:\172B\RBBS-PC.BAS:  Date 2-11-1990  Size 153912 bytes
  4. * ------------[ Created 08-26-1990 11:26:09 ]------------
  5. * REPLACING old line(s) by new
  6. 4 ' $title: 'RBBS-PC 17.3A, Copyright 1990 by D. Thomas Mack'        ' DA081003
  7. * REPLACING old line(s) by new
  8. 16 ' *  companion program, CONFIG (version 17.3A), to make copies of this     *
  9. * REPLACING old line(s) by new
  10. 31  ZSnoop = ZTrue
  11. * ------[ first line different ]------
  12.     CALL PScrn ("Configuration "+ZConfigFileName$+" missing/improper format") : _ ' KG071301
  13.     GOTO 204
  14. * REPLACING old line(s) by new
  15. 105 ZVersionID$ = "17.3A"
  16. * REPLACING old line(s) by new
  17. 135 IF ZCurDef$ = ZOrigCnfg$ THEN _
  18.        ZActiveMessageFile$ = ZMainMsgFile$ : _
  19.        ZActiveUserFile$ = ZMainUserFile$
  20.     GOSUB 4910
  21.     IF ZConfMode THEN _
  22.        GOTO 150
  23.     ZLocalUserMode = (RIGHT$(ZComPort$,1) < "1")
  24.     GET 1,ZNodeRecIndex
  25.     ZWasY$ = MID$(ZMsgRec$,77,2)
  26.     CALL UnPackDate (ZWasY$,WasX,WasL,WasI,ZOldDate$)
  27.     ZOldDate$ = LEFT$(ZOldDate$,6) + MID$(STR$(WasX),2)
  28.     ZHourMinToDropToDos = - (ZHourMinToDropToDos > 0) * ZHourMinToDropToDos
  29.     Hour = INT(ZHourMinToDropToDos / 100)
  30.     WasMN = ZHourMinToDropToDos - Hour * 100
  31. * ------[ first line different ]------
  32.     ZTimeToDropToDos! = Hour * 3600! + WasMN * 60!                   ' KK030901
  33. '
  34. ' ******  TEST FOR TIMED EXIT ACTIVE   *****
  35. '
  36. * REPLACING old line(s) by new
  37. 150 IF SubBoard THEN _
  38.        GOSUB 12987 : _
  39.        GOSUB 5135 : _
  40.        GOTO 170
  41.     ZSysopAvail = VAL(MID$(ZMsgRec$,32,2))
  42.     ZSysopAnnoy = VAL(MID$(ZMsgRec$,34,2))
  43.     ZSysopNext = VAL(MID$(ZMsgRec$,36,2))
  44.     MID$(ZMsgRec$,36,2) = STR$(ZFalse)
  45.     ZPrinter = VAL(MID$(ZMsgRec$,38,2))
  46.     IF ZTurnPrinterOff THEN _
  47.        ZPrinter = ZFalse
  48.     ZExitToDoors = (MID$(ZMsgRec$,40,2) = "-1" AND ZNetBaud$ = "")
  49.     ZEightBit = VAL(MID$(ZMsgRec$,42,2))
  50.     ZBPS = VAL(MID$(ZMsgRec$,44,2))
  51.     ZSnoop = VAL(MID$(ZMsgRec$,58,2))
  52.     MID$(ZMsgRec$,57,1) = "I"
  53.     ZPrivateDoor = (MID$(ZMsgRec$,72,2) = "-1")
  54.     IF ZPrivateDoor THEN _
  55.        ZHasPrivDoor = ZTrue
  56.     MID$(ZMsgRec$,72,2) = STR$(ZFalse)
  57. * ------[ first line different ]------
  58.     ZLocalUser = (MID$(ZMsgRec$,101,2) = ZCarriageReturn$+ZCarriageReturn$) ' KG030601
  59.     IF ZExitToDoors OR ZPrivateDoor THEN _
  60.        ZHasDoored = ZTrue : _
  61.        TurboLogon = ZTrue
  62.     PUT 1,ZNodeRecIndex
  63.     GOSUB 12985
  64. '
  65. ' *****  INITIALIZE VOICE SYNTHESIZER   ****
  66. '
  67.     CALL Talk (Init,ZOutTxt$)
  68. '
  69. ' *****  TEST FOR MULTI LINK PRESENT IF NOT COMPAQ COMPUTER   ****
  70. '
  71. * REPLACING old line(s) by new
  72. 175 GOSUB 5344
  73.     CALL CountLines (MaxEntries)
  74.     REDIM ZCategoryName$(MaxEntries),ZCategoryCode$(MaxEntries),_
  75.           ZCategoryDesc$(MaxEntries) : _
  76.     CALL InitFMS (ZCategoryName$(),ZCategoryCode$(), _
  77.                   ZCategoryDesc$(),ZNumCategories)
  78.     ZMaxMsgLines = ZMaxMsgLinesDef
  79.     ZLocalUser = (ZLocalUser OR ZLocalUserMode)
  80.     IF (NOT ZLocalUser) AND (NOT SubBoard) THEN _
  81.        CALL OpenCom (ZModemInitBaud$,",N,8,1")
  82.     IF NOT SubBoard THEN _
  83.        CALL SetEcho (ZDefaultEchoer$)
  84.     ZNodeWorkFile$ = ZNodeWorkDrvPath$ + _
  85.                       "NODE" + _
  86.                       ZNodeFileID$ + _
  87.                       "WRK"
  88. * ------[ first line different ]------
  89.     ZSecsPerSession! = ZMinsPerSession * 60!                         ' KK030901
  90.     IF NOT ZLocalUserMode THEN _
  91.        IF NOT ZExitToDoors THEN _
  92.           GOTO 180 _
  93.        ELSE IF NOT ZLocalUser THEN _
  94.                GOTO 180
  95.     ZLocalUser = ZTrue
  96.     ZBPS = -6
  97.     ZBaudTest! = 9600
  98.     ZEightBit = ZTrue
  99.     ZSnoop = ZTrue
  100.     IF ZExitToDoors THEN _
  101.        CALL AMorPM : _
  102.        CALL ReadProf : _
  103.        GOTO 410
  104.     GOSUB 178
  105.     GOTO 345
  106. * REPLACING old line(s) by new
  107. * ------[ first line different ]------
  108. 178 IF NOT SubBoard THEN _                                           ' KG082002
  109.        RETURN                                                        ' KG082002
  110.     IF ZNewUser THEN _                                               ' KG082002
  111.        GOSUB 758                                                     ' KG082002
  112.     IF ZFirstName$ = ZSysopFirstName$ AND _
  113.        ZLastName$ = ZSysopLastName$ THEN _
  114.           RETURN 832 _
  115.     ELSE RETURN 790                                                  ' KG082002
  116. * REPLACING old line(s) by new
  117. 345 LOCATE 24,1
  118.     CALL AMorPM
  119.     ZUserLogonTime! = TIMER
  120.     ZTimeLoggedOn$ = TIME$
  121.     ZLinesPrinted = 0
  122.     ZExpertUserDef = ZExpertUser
  123.     ZExpertUser = ZFalse
  124.     CALL SetExpert
  125.     ZOutTxt$ = ""
  126.     IF NodesInSystem > 1 THEN _
  127. * ------[ first line different ]------
  128.        ZOutTxt$ = " - Node " + ZNodeID$                              ' DA071701
  129.     IF ZReliableMode THEN _
  130.        ZOutTxt$ = ZOutTxt$ + " (Reliable)"                           ' KG071301
  131.     CALL QuickTPut1 ("Welcome to " + ZRBBSName$ + ZOutTxt$)          ' DA071701
  132.     ZTestParity = ZTrue
  133.     ZStopInterrupts = ZTrue
  134.     ZFileName$ = ZPreLog$
  135.     CALL FlushCom (WasX$)
  136.     ZCommPortStack$ = ""
  137. * REPLACING old line(s) by new
  138. 459 GOSUB 9500
  139.     ZLastDateTimeOnSave$ = ZLastDateTimeOn$
  140.     IF ZExitToDoors THEN _
  141. * ------[ first line different ]------
  142.        TempHoldTime! = VAL(LEFT$(ZTime$,2))*3600! + _                ' KK030901
  143.                          VAL(MID$(ZTime$,4,2))*60! : _               ' KK030901
  144.        CALL CheckTime(TempHoldTime!, TempTime!, 2) : _
  145.        MinsInDoors = TempTime! / 60 : _
  146.        CALL TimeRemain (MinsRemaining)
  147.     ZUserFileIndex = LOC(5)
  148.     GOSUB 5135
  149. '
  150. ' ***  COMPUTE THE NUMBER OF DAYS REMAINING UNTIL REGISTRATION EXPIRES **
  151. '
  152.     IF ZRestrictByDate AND ZDaysInRegPeriod > 0 THEN _
  153.        CALL CompDate (UserRegYY,UserRegMM,UserRegDD,UserComputeDate!) : _
  154.        ZRegDaysRemaining = UserComputeDate! + _
  155.                             ZDaysInRegPeriod - _
  156.                             TodayComputeDate! : _
  157.        CALL ExpireDate (UserComputeDate!,ZDaysInRegPeriod,ZExpirationDate$) _
  158.     ELSE ZDaysInRegPeriod = 0
  159.     IF NOT ZPrivateDoor THEN _
  160.        IF ZRegDaysRemaining < 0 AND ZDaysInRegPeriod > 0 THEN _
  161.        IF ZUserSecLevel > ZExpiredSec THEN _
  162.           CALL QuickTPut1 (ZWasLG$(9) + _
  163.                       " - security reset to " + _
  164.                       STR$(ZExpiredSec)) : _
  165.           CALL BufFile(ZHelpPath$+"RGXPIRD"+ZHelpExtension$,WasX) : _
  166.           ZLogonErrorIndex = 9 : _
  167.           ZUserSecLevel = ZExpiredSec : _
  168.           LSET ZSecLevel$ = MKI$(ZUserSecLevel) : _
  169.           GOSUB 5135
  170. * REPLACING old line(s) by new
  171. 725 IF ZUserSecLevel < ZMinLogonSec THEN _
  172.        ZLogonErrorIndex = 1 : _
  173.        GOTO 460
  174.     IF ZFirstName$ = ZLastName$ THEN _
  175.        CALL QuickTPut1 (ZFirstNamePrompt$+"/"+ZLastNamePrompt$+" cannot be same") : _
  176.        ZLogonErrorIndex = 3 : _
  177.        GOTO 10620
  178.     IF NOT ZRememberNewUsers THEN _
  179.        GOSUB 13700 : _
  180.        ZUserFileIndex = 0 : _
  181.        GOSUB 12960: _
  182.        PrevLastOn$ = "00-00-00": _
  183.        GOTO 735
  184.     ZNewUser = ZTrue
  185.     CALL OpenUser (HighestUserRecord)
  186.     GOSUB 9450
  187.     GOSUB 12630
  188.     MID$(ZUserRecord$,ZStartHash,ZLenHash) = LEFT$("NEWUSER",ZLenHash)
  189. * ------[ first line different ]------
  190.     IF ZStartIndiv > 0 THEN _                                        ' RC050901
  191.        MID$(ZUserRecord$,ZStartIndiv,ZLenIndiv) = ZIndivValue$       ' RC050901
  192.     GOSUB 9440
  193. * REPLACING old line(s) by new
  194. 735 ZBypassTimeCheck = ZTrue
  195. * ------[ first line different ]------
  196.     GOSUB 758                                                        ' KG082002
  197. * REPLACING old line(s) by new
  198. * ------[ first line different ]------
  199. 754 CALL QuickTPut1 ("GUEST privileges granted.  Re-register on future calls")  ' DA071701
  200.     ZUserSecSave = ZUserSecLevel
  201.     GOTO 832
  202. * REPLACING old line(s) by new
  203. 755 IF ZPrivateDoor THEN _
  204.        ZUserIn$ = ZPswd$ : _
  205.        ZWasZ$ = ZUserIn$ : _
  206.        RETURN
  207.     GOSUB 12800
  208. * ------[ first line different ]------
  209.     ZOutTxt$ = "Re-Enter password for Verification"                  ' DA071701
  210.     GOSUB 45010
  211.     SWAP ZWasZ$,ZUserIn$
  212.     CALL AllCaps (ZWasZ$)
  213.     IF ZUserIn$ <> ZWasZ$ THEN _
  214.        CALL QuickTPut1 ("Passwords Don't Match!") : _
  215.        GOTO 755
  216.     RETURN                                                           ' KG082002
  217. * INSERTING new line(s)
  218. 758 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)                         ' KG082002
  219.     CALL Line25
  220.     ZFileName$ = ZNewUserFile$
  221.     ZStopInterrupts = ZTrue
  222.     GOSUB 1790
  223.     CALL SkipLine(1)
  224.     RETURN                                                           ' KG082002
  225. '
  226. ' ***  R - COMMAND FROM NEWUSER ROUTINE - REGISTER   **
  227. '
  228. * REPLACING old line(s) by new
  229. 760 GOSUB 755
  230.     CALL AllCaps (ZWasZ$)
  231.     LSET ZPswd$ = ZWasZ$
  232.     CALL QuickTPut1 ("Please REMEMBER your password")
  233.     ZUserTextColor = 37
  234.     ZTempSecLevel = ZUserSecLevel
  235.     CALL Protocol
  236.     ZUserXferDefault$ = "N"
  237.     ZProtoPrompt$ = "None"
  238. * ------[ first line different ]------
  239.     IF ZNewUserSetsDefaults THEN _                                   ' KG071301
  240.        ZBypassTimeCheck = ZTrue : _
  241.        GOSUB 43000 : _
  242.        ZBypassTimeCheck = ZFalse : _
  243.        CALL Graphic (ZUserGraphicDefault$,ZFileName$) : _
  244.        GOSUB 42805 : _
  245.        GOSUB 42700 _
  246.     ELSE ZUpperCase = ZFalse : _
  247.          ZHiLiteOff = ZTrue : _
  248.          CALL SetGraphic (0,ZUserGraphicDefault$) : _
  249.          ZNulls = ZFalse
  250.     ZPageLength = ZPageLengthDef
  251.     GOSUB 12900
  252.     GOSUB 5135
  253.     CALL DefaultU
  254. * REPLACING old line(s) by new
  255. 800 CALL DoorReturn
  256.     IF ZAdjustedSecurity THEN _
  257.        GOSUB 5135
  258.     IF ZOrigCnfg$ = ZCurDef$ THEN _
  259.        ZMainUserFileIndex = ZUserFileIndex : _
  260.        ZOrigSec = ZUserSecLevel : _
  261.        ZUserSecSave = ZUserSecLevel : _
  262.        ZOrigUserName$ = ZActiveUserName$
  263.     ZTimesLoggedOn = CVI(MID$(ZUserOption$,1,2)) - _
  264.        ((ZOrigCnfg$ <> ZCurDef$ OR NOT SubBoard) AND _
  265.         (NOT ZPrivateDoor) AND (NOT ZExitToDoors))
  266.     GOSUB 9500
  267.     IF (NOT ZExitToDoors) AND (NOT SubBoard) THEN _
  268.        CALL UpdtCalr (ZActiveUserName$ + " from " + ZWasCI$ + _
  269.                  " Lvl" + STR$(ZUserSecLevel) + " " + TIME$,2)
  270.     PrevLastOn$ = ZLastDateTimeOn$
  271.     IF ZLocalUser THEN _
  272.        ZTalkToModemAt$ = "9600" : _
  273.        ZBaudParity$ = "9600 BAUD,N,8,1" : _
  274.        ZModemInitBaud$ = "9600" : _
  275.        ZSnoop = ZTrue : _
  276.        ZLineFeeds = ZTrue
  277.     CALL SetCrLf
  278.     CALL SetPrompt
  279.     CALL XferType (2,ZTrue)
  280.     IF NOT SubBoard THEN _
  281.        BoardCheckDate$ = PrevLastOn$
  282. * ------[ first line different ]------
  283.     GOSUB 5370                                                       ' KG060101
  284.     IF ZWasA THEN _                                                  ' KG060101
  285.        ZActiveUserName$ = "SYSOP"                                    ' KG060101
  286.     IF ZExitToDoors OR SubBoard THEN _                               ' KG052701
  287.        GOTO 815
  288.     GOSUB 465
  289.     IF (ZEightBit AND _
  290.        ZAutoDownDesired) OR _
  291.        ZAskID THEN _
  292.        CALL TestUser
  293.     CALL QuickTPut1 ("Logging " + ZActiveUserName$)
  294.     CALL Talk (1,ZOutTxt$)
  295.     CALL QuickTPut1 ("RBBS-PC " + ZVersionID$ + " Node " + ZNodeID$ + _  ' DA071701
  296.                 ", operating at " + ZBaudParity$)                    ' DA071701
  297.     CALL SkipLine (1)
  298.     Attempts = 0
  299.     ZWasZ$ = ZActiveUserName$ + _                                    ' KG052701
  300.             " on at " + _                                            ' KG052701
  301.             ZCurDate$ + _                                            ' KG052701
  302.             ", " + _                                                 ' KG052701
  303.             ZTime$ + _                                               ' KG052701
  304.             " from " + _                                             ' KG052701
  305.             ZWasCI$ + _                                              ' KG052701
  306.             ", " + _                                                 ' KG052701
  307.             ZBaudParity$                                             ' KG052701
  308.      ZWasNG$ = ZWasZ$ + SPACE$(128 - LEN(ZWasZ$))                    ' KG052701
  309.      MsgUserName$ = LEFT$(ZActiveUserName$+"  ",22)                  ' KG052701
  310. '
  311. ' *  ALWAYS RECORD THE HASH/INDIVIDUATING FIELD TO EACH RECORD LOGGED OUT
  312. '
  313.      WasX$ = "{" + _                                                 ' KG052701
  314.           HashValue$ + _                                             ' KG052701
  315.           "/" + _                                                    ' KG052701
  316.           ZIndivValue$ + _                                           ' RC050901
  317.           "}"                                                        ' KG052701
  318.      IF LEN(ZWasZ$) < 65 THEN _                                      ' KG052701
  319.         WasX = 65 _                                                  ' KG052701
  320.      ELSE WasX = LEN(ZWasZ$) + 2                                     ' KG052701
  321.      MID$(ZWasNG$,WasX) = WasX$                                      ' KG052701
  322.      CALL Printit ("  " + ZWasZ$)                                    ' KG052701
  323.      IF ZNewUser THEN _                                              ' KG052701
  324.         CALL UpdtCalr ("NEWUSER",1) : _                              ' KG052701
  325.         CALL Muzak (2)                                               ' KG052701
  326. '
  327. ' *****  NOTIFY CALLER IF ABLE TO "AUTODOWN"  ****
  328. '
  329.     IF ZEightBit AND ZAutoDownYes THEN _
  330.        ZOutTxt$ = CHR$(9) + _
  331.             ZReturnLineFeed$ + _
  332.             "You may use AUTODOWNLOADing!" : _
  333.        CALL RingCaller : _
  334.        CALL DelayTime(4)
  335. * REPLACING old line(s) by new
  336. 815 ZDnlds = CVI(ZUserDnlds$)
  337.     ZUplds = CVI(ZUserUplds$)
  338.     IF ZEnforceRatios THEN _
  339.        ZDLToday! = CVS(ZTodayDl$) : _
  340.        ZBytesToday! = CVS(ZTodayBytes$) : _
  341.        ZDLBytes! = CVS(ZDlBytes$) : _
  342.        ZULBytes! = CVS(ZULBytes$)
  343.     IF ZCurDate$ <> LEFT$(ZLastDateTimeOnSave$,8) THEN  _
  344.        ZDLToday! = 0 : _
  345.        ZBytesToday! = 0
  346.     IF NOT GlobalsSet THEN _
  347.        GlobalsSet = ZTrue : _
  348.        ZGlobalDnlds = ZDnlds : _
  349.        ZGlobalUplds = ZUplds : _
  350.        ZGlobalDLToday! = ZDLToday! : _
  351.        ZGlobalBytesToday! = ZBytesToday! : _
  352.        ZGlobalDLBytes! = ZDLBytes! : _
  353.        ZGlobalULBytes! = ZULBytes!
  354.     'IF ZRatioRestrict# > 0 AND ZEnforceRatios THEN _
  355.     '   IF ZByteMethod = 0 AND ZUplds < ZInitialCredit# THEN _
  356.     '      ZUplds = ZInitialCredit# _
  357.     '   ELSE IF ZByteMethod = 1 AND ZULBytes! < ZInitialCredit# THEN _
  358.     '           ZULBytes! = ZInitialCredit#
  359.     GOSUB 827
  360.     LSET ZUserOption$ = MKI$(ZTimesLoggedOn) + _
  361.                          MID$(ZUserOption$,3)
  362.     LSET ZLastDateTimeOn$ = ZCurDate$ + _
  363.                               " " + _
  364.                               ZTimeLoggedOn$
  365.     MID$(ZUserRecord$,ZStartHash,ZLenHash) = HashValue$
  366.     IF ZStartIndiv > 0 THEN _
  367. * ------[ first line different ]------
  368.        MID$(ZUserRecord$,ZStartIndiv,ZLenIndiv) = ZIndivValue$       ' RC050901
  369.     LSET ZUserName$ = ZOrigUserName$
  370.     IF (NOT ZExitToDoors) AND NOT (ZOrigMsgFile$ = ZActiveMessageFile$ AND SubBoard) THEN _
  371.        CALL AutoPage
  372.     IF NOT SubBoard THEN _
  373.        ZOrigUserFileIndex = ZUserFileIndex
  374.     IF NOT ZConfMode THEN _                                          ' KG070601
  375.        IF ZOrigDateTimeOn$ = "" THEN _                               ' KG070601
  376.           ZOrigDateTimeOn$ = ZLastDateTimeOn$ : _                    ' KG070601
  377.           ZOrigTimeLoggedOn$ = ZTimeLoggedOn$ _                      ' KG070601
  378.        ELSE ZLastDateTimeOn$ = ZOrigDateTimeOn$ :                    ' KG070601
  379.             ZTimeLoggedOn$ = ZOrigTimeLoggedOn$                      ' KG070601
  380.     GOSUB 9440
  381.     GOSUB 12991
  382.     CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)
  383.     IF TurboLogon THEN _
  384.        GOTO 819
  385.     IF SkipWelcomeScreen AND _
  386.        (ZUserSecLevel >= ZAllowCallerTurbo) THEN _
  387.        GOTO 816
  388.     IF NOT SameUser THEN _
  389.        ZStopInterrupts = NOT ZWelcomeInterruptable : _
  390.        ZBypassTimeCheck = ZTrue : _
  391.        ZFileName$ = ZWelcomeFile$ : _
  392.        ZDisplayAsUnit = ZTrue : _
  393.        GOSUB 1790 : _
  394.        ZDisplayAsUnit = ZFalse
  395.     ZBypassTimeCheck = ZFalse
  396.     ZStopInterrupts = ZTrue
  397. * REPLACING old line(s) by new
  398. * ------[ first line different ]------
  399. 819 CALL Trim (ZWasCI$)                                              ' KG060101
  400.     IF (ZNodeRecIndex < 2) THEN _
  401.        GOTO 821
  402.     GOSUB 4910
  403.     GOSUB 24000
  404.     GET 1,ZNodeRecIndex
  405.     MID$(ZMsgRec$,1,31) = ZActiveUserName$ + _
  406.                                  SPACE$(31 - LEN(ZActiveUserName$))
  407.     MID$(ZMsgRec$,40,2) = " 0"
  408.     MID$(ZMsgRec$,44,2) = STR$(ZBPS)
  409.     MID$(ZMsgRec$,55,2) = " 0"
  410.     MID$(ZMsgRec$,57,1) = "A"
  411.     MID$(ZMsgRec$,60,5) = ZTalkToModemAt$ + _
  412.                                  SPACE$(5 - LEN(ZTalkToModemAt$))
  413.     MID$(ZMsgRec$,72,2) = " 0"
  414.     MID$(ZMsgRec$,93,24) = ZWasCI$ + _
  415.                                   SPACE$(24)
  416.     PUT 1,ZNodeRecIndex
  417.     GOSUB 12985
  418. * REPLACING old line(s) by new
  419. 821 IF ZExitToDoors THEN _
  420.        IF ZTransferFunction = 3 THEN _
  421.           ZNewUser = ZTrue : _
  422.           TurboLogon = ZFalse : _
  423.           SameUser = ZFalse : _
  424.           ZTransferFunction = 0 : _
  425.           GOTO 832 _
  426.        ELSE GOTO 832
  427.     GOSUB 1241
  428.     IF (SubBoard AND (ZOrigMsgFile$ = ZActiveMessageFile$)) _
  429.        OR ((ZUserSecLevel > ZMaxRegSec) AND (NOT ZNewUser)) THEN _
  430.        GOTO 832
  431.     ZWasZ$ = ZRegProgram$
  432.     ZTransferFunction = 3
  433. * ------[ first line different ]------
  434.     CALL DoorExit (ZFalse)                                           ' KG032502
  435.     ZTransferFunction = 0
  436.     GOTO 832
  437. '
  438. ' ****  ESC PRESSED ON LOCAL CONSOLE ENTERS HERE   ***
  439. '
  440. * REPLACING old line(s) by new
  441. 822 LOCATE 24,1
  442.     CALL TakeOffHook
  443.     ZLocalUser = ZTrue
  444.     ZSnoop = ZTrue
  445. * ------[ first line different ]------
  446.     ZSysop = ZTrue                                                   ' DR081801
  447.     ZBPS = -6
  448.     CALL CommInfo
  449.     CALL Muzak (2)
  450.     IF NOT ZEscapeInsecure THEN _
  451.        GOTO 345
  452.     ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$
  453.     ZFirstName$ = ZSysopPswd1$
  454.     ZLastName$ = ZSysopPswd2$
  455.     ZUserLogonTime! = TIMER
  456.     ZTimeLoggedOn$ = TIME$
  457.     ZLinesPrinted = 0
  458.     GOTO 457
  459. * REPLACING old line(s) by new
  460. 832 IF ZRestrictByDate AND ZDaysInRegPeriod > 0 THEN _
  461.        IF ZRegDaysRemaining <= ZDaysToWarn AND _
  462. * ------[ first line different ]------
  463.           ZRegDaysRemaining > 0 AND ZUserSecLevel > ZExpiredSec THEN _ ' KG071101
  464.              CALL QuickTPut1 ("Registration EXPIRES in" + _
  465.                        STR$(ZRegDaysRemaining) + " days!") : _
  466.              CALL BufFile(ZHelpPath$+"RGXPIRE"+ZHelpExtension$,WasX) : _
  467.              IF NOT ZOk THEN CALL DelayTime (5)
  468.     IF (NOT ZReqQuesAnswered) AND _
  469.        ZReqQues$ <> "" THEN _
  470.          ZFileName$ = ZReqQues$ : _
  471.          GOSUB 11520 : _
  472.          IF ZOK THEN _
  473.             ZReqQuesAnswered = ZTrue                                 ' KG052701
  474. * DELETING old line(s)
  475. 837
  476. * REPLACING old line(s) by new
  477. 900 ZNewUser = ZFalse
  478.     ActionFlag = (ZLogonMailLevel$ = "S")
  479.     LogonMailNew = (ZLogonMailLevel$ = "N")
  480.     GOSUB 1895
  481.     IF ZActiveUserName$ = "SYSOP" AND NOT ZSysop THEN _
  482.        ZActiveUserName$ = ZOrigUserName$
  483.     LogonMailNew = ZFalse
  484.     ZSubParm = 2
  485.     CALL Line25
  486.     ZSection$ = "    "
  487.     ZOutTxt$ = ""
  488.     IF (NOT ZConfMode) AND (NOT SubBoard) AND NOT TurboLogon THEN _
  489.        MailCheckConfirm = ZTrue : _
  490.        ZNonStop = ZTrue : _
  491.        GOSUB 5800
  492.     MailCheckConfirm = ZFalse
  493.     ZWasQ! = MinsInDoors * 60
  494. * ------[ first line different ]------
  495.     IF ZExitToDoors and ZDooredTo$ <> "" THEN _                      ' ML082001
  496.        CALL BufFile (ZOutTxt$(7),WasX)                               ' ML082001
  497.     ZExitToDoors = ZFalse
  498.     GOSUB 2350
  499.     IF NOT ZPrivateDoor THEN _
  500.        GOTO 955
  501.     GOSUB 20165
  502.     CALL SetSection
  503.     ZPrivateDoor = ZFalse
  504.     GOTO 1205
  505. * REPLACING old line(s) by new
  506. 1205 IF ZSubParm < 0 THEN _
  507.         GOTO 202
  508.      ZSubParm = 1
  509.      ZStopInterrupts = ZFalse
  510.      ZNonStop = (ZPageLength < 1)
  511.      ZWasQ = 0
  512. * ------[ first line different ]------
  513.      IF ConfMailJoin OR (ZHomeConf$ <> "" AND ZHomeConf$ <> "MAIN") THEN _ ' TC051701
  514.         TurboLogon = (NOT ConfMailJoin) : _
  515.         ConfMailJoin = ZFalse : _
  516.         ZFF = 8 : _
  517.         ZUserIn$(2) = ZHomeConf$ : _
  518.         ZHomeConf$ = "" : _
  519.         ZWasQ = 1 : _
  520.         ZAnsIndex = 1 : _
  521.         ZLastIndex = 2 : _
  522.         ZStoreParseAt = 1 : _
  523.         ZLastCommand$ = "MJ" : _                                     ' KG021502
  524.         GOTO 1240
  525.      CALL SkipLine (1)
  526. * REPLACING old line(s) by new
  527. 1210 GOSUB 41000
  528.      IF ZAnsIndex < ZLastIndex THEN _
  529.         GOTO 1232
  530.      CALL Talk (10,ZOutTxt$)
  531. * ------[ first line different ]------
  532.      CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)                        ' KG081702
  533.      IF ZExpertUser THEN _
  534.         GOTO 1230
  535. * REPLACING old line(s) by new
  536. * ------[ first line different ]------
  537. 1230 CALL Line25                                                     ' KG081404
  538.      IF ZConfMode THEN _
  539.         ZOutTxt$ = ZConfName$ + ":" : _                              ' KG081702
  540.         GOSUB 12978 : _                                              ' KG081702
  541.         CALL Talk (65,ZConfName$)
  542.      CALL DispTimeRemain (MinsRemaining)                             ' KG081702
  543.      IF ZMenuIndex = 6 THEN _
  544.         ZSubParm = 1 : _
  545.         CALL Library
  546.      CALL Talk (ZMenuIndex, ZOutTxt$)
  547. * REPLACING old line(s) by new
  548. * ------[ first line different ]------
  549. 1232 MID$(ZLastCommand$,2,1) = " "                                   ' KG052901
  550.      IF ZCustomPUI THEN _                                            ' KG052901
  551.         CALL UserFace (ZUserGraphicDefault$) : _
  552.         GOSUB 12997 : _
  553.         GOTO 1235                                                    ' KG052901
  554.      ZOutTxt$ = ZCmdPrompt$
  555.      GOSUB 12930
  556.      IF ZWasQ = 0 THEN _
  557.         GOTO 1230
  558. * REPLACING old line(s) by new
  559. 1401 ZStackC = ZTrue
  560.      CALL SubMenu ("Which questionnaire(s), L)ist" + ZPressEnterExpert$, _
  561. * ------[ first line different ]------
  562.         WasA1$,ZQuesPath$,".DEF","",ZUserGraphicDefault$,ZTrue,ZFalse,ZTrue,"",WasX) ' KG032502
  563.      IF ZWasQ = 0 THEN _
  564.         RETURN
  565.      IF ZSubParm = -1 THEN _
  566.         RETURN 10595
  567.      QuestHold$ = ZWasZ$
  568.      GOSUB 11520
  569.      CLOSE 2
  570.      CALL UpdtCalr (QuestHold$ + " questionnaire " + _
  571.         MID$("answeredaborted",1 - 8 * ZQuestAborted,8),2)
  572.      IF ReturnToPrompt THEN _
  573.         RETURN
  574.      GOTO 1401
  575. '
  576. ' *****    Toggle COMMAND (UTILITIES)     ****
  577. '
  578. * REPLACING old line(s) by new
  579. * ------[ first line different ]------
  580. 1510 ZStackC = ZTrue                                                 ' KG081301
  581.      GOSUB 12930
  582.      IF ZWasQ=0 THEN _
  583.         RETURN
  584.      ZWasZ$ = ZUserIn$(ZAnsIndex)
  585.      CALL AllCaps (ZWasZ$)
  586.      ZFF = INSTR("ABCFHLNTX!",ZWasZ$)
  587.      IF ZFF < 1 THEN _
  588.         GOTO 1500
  589.      CALL Toggle (ZFF)
  590.      GOSUB 12997
  591.      GOTO 1500
  592. '
  593. ' ****  I - COMMAND FROM MAIN MENU (DISPLAY INITIAL WELCOME)  ***
  594. '
  595. * REPLACING old line(s) by new
  596. 1900 GOSUB 5344
  597.      IF ZPrivateDoor THEN _
  598.         ActionFlag = ZTrue
  599.      ZPrevBase$ = ZActiveMessageFile$
  600.      ShowActive = ZFalse
  601.      IF NOT ActionFlag THEN _
  602.         CALL QuickTPut ("Checking messages in " + ConfFileName$,0) : _
  603.         ShowActive = ZTrue _
  604.      ELSE CALL QuickTPut ("Loading messages",0)
  605. * ------[ first line different ]------
  606.      WasA1$ = ""                                                     ' KG030801
  607.      MsgCt = 0                                                       ' KG030203
  608.      MsgsFromUser = ZFalse
  609.      ActiveMessages = 0
  610.      MailReported = ActionFlag
  611.      FirstOld = ZTrue
  612.      GOSUB 23000
  613.      MsgRec = FirstMsgRecord
  614.      MaxMsgs = VAL(MID$(ZMsgRec$,89,7))
  615.      IF MaxMsgs > WasMM THEN _
  616.         MaxMsgs = WasMM
  617.      REDIM ZMsgPtr(MaxMsgs,2)
  618.      NumDots = 0
  619. * REPLACING old line(s) by new
  620. 1925 ZWasA = VAL(MID$(ZMsgRec$,2,4))
  621.      IF LogonMailNew THEN _
  622.         IF ZWasA <= ZLastMsgRead THEN _
  623.            GOTO 1935
  624.      IF NOT ShowActive THEN _
  625.         GOTO 1930
  626.      MailReported = ZTrue
  627.      FirstNew = (ZWasA > ZLastMsgRead)
  628.      IF FirstNew THEN _
  629. * ------[ first line different ]------
  630.         MsgCt = 0 : _                                                ' KG030203
  631.         CALL SkipLine (1) : _
  632.         CALL QuickTPut1 ("NEW Mail for YOU (* = Private)") _
  633.      ELSE IF FirstOld THEN _
  634.              CALL SkipLine (1) : _
  635.              CALL QuickTPut1 ("OLD Mail for YOU (* = Private)") : _
  636.              FirstOld = ZFalse
  637.      ShowActive = NOT FirstNew
  638. * REPLACING old line(s) by new
  639. 1930 CALL QuickTPut (LEFT$(ZMsgRec$,5),0)
  640. * ------[ first line different ]------
  641.      MsgCt = MsgCt + 1                                               ' KG030203
  642.      IF MsgCt MOD 15 = 0 THEN _                                      ' KG030203
  643.         CALL SkipLine (1) : _                                        ' KG030203
  644.         CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)                     ' KG030203
  645. * REPLACING old line(s) by new
  646. * ------[ first line different ]------
  647. 1940 MsgsFromUser = MsgsFromUser + 1                                 ' KG080501
  648.      WasA1$ = WasA1$ + LEFT$(ZMsgRec$,5)                             ' KG080501
  649. * REPLACING old line(s) by new
  650. 1950 IF NOT MailReported THEN _
  651.         ZOutTxt$ = "Sorry, " + _
  652.              ZFirstName$ + _
  653. * ------[ first line different ]------
  654.              ", No " + ZUserIn$(0) + "mail for you" : _              ' DA071701
  655.         GOSUB 12975
  656.      IF MsgsFromUser = 0 OR NOT ZMsgReminder THEN _
  657.         GOTO 1961
  658.      IF ActionFlag THEN _
  659.         GOTO 1961
  660.      ZOutTxt$ = "Mail you left"
  661.      GOSUB 12976
  662. * REPLACING old line(s) by new
  663. 1960 WasK = 1
  664. * ------[ first line different ]------
  665.      FOR MsgCt = 1 TO MsgsFromUser                                   ' KG030203
  666.         ZOutTxt$ = MID$(WasA1$,WasK,5)                               ' KG030801
  667.         WasK = WasK + 5
  668.         GOSUB 12978
  669.         IF MsgCt MOD 15 = 0 THEN _                                   ' KG030203
  670.            CALL SkipLine (1) : _                                     ' KG030203
  671.            CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)                  ' KG030203
  672.      NEXT
  673.      WasA1$ = ""                                                     ' KG030801
  674.      CALL SkipLine (1)
  675.      CALL QuickTPut1 ("Please K)ill old/unneeded msgs")
  676. * REPLACING old line(s) by new
  677. 2000 QuotedReply = ZFalse
  678.      MsgFrom$ = ZActiveUserName$
  679. * ------[ first line different ]------
  680.      SysopMsg = ZFalse                                               ' MB051601
  681.      GOSUB 1893                                                      ' DA071101
  682. * REPLACING old line(s) by new
  683. 2020 CALL MessageTo (HighestUserRecord,MsgTo$,MsgFrom$,RcvrRecNum,Found)
  684.      IF MsgTo$ = "" THEN _
  685.         RETURN
  686. * ------[ first line different ]------
  687.      IF ZSysopComment OR SysopMsg THEN _                             ' ML061904
  688.         GOTO 2100                                                    ' ML061904
  689.      IF ZReply OR MsgFwd THEN _
  690.         Found = ZTrue : _
  691.         CALL Trim (MsgTo$):  _
  692.         GOTO 2035 _
  693.      ELSE Subject$ = ""
  694.      GOSUB 2065
  695. * REPLACING old line(s) by new
  696. * ------[ first line different ]------
  697. 2035 IF QuotedReply THEN _                                           ' ML061904
  698.         RETURN
  699.      GOTO 2100
  700. '
  701. ' *****  SET/CHANGE SUBJECT FOR A MESSAGE   ***
  702. '
  703. * REPLACING old line(s) by new
  704. 2065 IF Subject$ <> "" THEN _
  705. * ------[ first line different ]------
  706.         ZOutTxt$ = "Change subject from " + _                        ' DA071701
  707.              Subject$ + _
  708.              " to" : _
  709.         GOSUB 12932 _
  710.      ELSE ZOutTxt$ = "Subject" : _
  711.           ZParseOff = ZTrue : _
  712.           GOSUB 12932
  713.      IF LEN(ZUserIn$) > 25 THEN _
  714.         ZOutTxt$ = "25 Char. Max" : _
  715.         GOSUB 12979 : _
  716.         GOTO 2065
  717.      IF ZWasQ = 0 THEN _
  718.         IF Subject$ <> "" THEN _
  719.            RETURN _
  720.         ELSE GOSUB 2435 : _
  721.              IF ZYes THEN _
  722.                 RETURN 5160 _
  723.              ELSE GOTO 2065
  724.      Subject$ = ZUserIn$
  725.      CALL AllCaps (Subject$)
  726.      OrigSubject$ = Subject$
  727.      RETURN
  728. '
  729. ' *****  ENTER MAIN BODY OF MESSAGE  ****
  730. '
  731. * REPLACING old line(s) by new
  732. 2520 ZOutTxt$ = "Up to and including Line # (ENTER =" + STR$(Mark1) + ")"
  733.      GOSUB 3302
  734.      IF ZWasQ = 0 THEN _
  735.         Mark2 = Mark1 _
  736.      ELSE Mark2 = ZTestedIntValue
  737.      CALL SkipLine(1)
  738.      IF Mark1 > Mark2 THEN _
  739. * ------[ first line different ]------
  740.         ZOutTxt$ = "Beginning exceeds end.  Block NOT deleted" : _   ' DA071701
  741.         GOSUB 12979 : _
  742.         GOTO 2555
  743.      IF Mark1 <= MsgLockLines THEN _
  744.         ZOutTxt$ = "You can NOT delete lines 1 -" + STR$(MsgLockLines) + "!" : _
  745.         GOSUB 12979 : _
  746.         GOTO 2555
  747.      GOTO 2530                                                       ' DA071702
  748. * REPLACING old line(s) by new
  749. * ------[ first line different ]------
  750. 2530 ZOutTxt$ = "Delete lines " + STR$(Mark1) + "-" + _              ' DA071702
  751.         MID$(STR$(Mark2),2) + " (Y,[N],L)ist)"                       ' KG072605
  752.      GOSUB 12930
  753.      Temp$ = ZUserIn$(ZAnsIndex)                                     ' DA071702
  754.      CALL AllCaps(Temp$)                                             ' DA071702
  755.      IF Temp$ = "L" THEN GOTO 2522                                   ' KG072605
  756.      IF NOT ZYes THEN _
  757.         ZOutTxt$ = "NOT Deleted" : _
  758.         GOSUB 12979 : _
  759.         GOTO 2555
  760. * REPLACING old line(s) by new
  761. 2600 ZOutTxt$ = "Edit"
  762.      GOSUB 3300
  763.      IF ZTestedIntValue <= MsgLockLines THEN _
  764. * ------[ first line different ]------
  765.         ZOutTxt$ = "Not permitted to change 1st" + _                 ' KG071301
  766.                     STR$(MsgLockLines) + " line(s)" : _
  767.         GOSUB 12979 : _
  768.         GOTO 2300
  769.      CALL EditALine (ZTestedIntValue)
  770.      IF ZSubParm < 0 THEN _
  771.         GOTO 202
  772.      GOTO 2300
  773. * REPLACING old line(s) by new
  774. 3010 ZStopInterrupts = ZFalse
  775.      CALL SkipLine (1)
  776. * ------[ first line different ]------
  777.      IF (ZWasQ = 1 OR MsgFwd) AND NOT ZGetExtDesc THEN _             ' ML061905
  778.         WasL = 1 : _
  779.         ZOutTxt$ = ZFG3$ + "To: " + _
  780.              MsgTo$ + _
  781.              ZFG4$ + " Re: " + _
  782.              Subject$ + ZEmphasizeOff$ : _
  783.         GOSUB 12979 : _
  784.         CALL QuickTPut (MID$("    ",1,-4 * (NOT ZRemoteEcho)),0) : _
  785.         GOSUB 3200
  786. * REPLACING old line(s) by new
  787. * ------[ first line different ]------
  788. 3020 IF ZGetExtDesc THEN WasL = 1                                    ' ML071501
  789.      FOR WasX = WasL TO ZLinesInMsg                                  ' ML071501
  790.         CALL AskMore ("",ZTrue,ZTrue,WasXX,ZFalse)
  791.         IF ZNo OR ZRet THEN _
  792.            WasX = ZLinesInMsg + 1 _
  793.         ELSE ZOutTxt$ = RIGHT$(STR$(WasX),2) + _
  794.                   ": " + _
  795.                   ZOutTxt$(WasX) : _
  796.              GOSUB 12979
  797.      NEXT
  798.      RETURN
  799. '
  800. ' *****  CHANGE MARGIN WIDTH   ****
  801. '
  802. * REPLACING old line(s) by new
  803. * ------[ first line different ]------
  804. 3405 SaveReplyStatus = ZReply                                        ' ML061904
  805.      ZReply = ZTrue                                                  ' ML061904
  806.      IF SysopMsg THEN _                                              ' ML061904
  807.         MsgPswd$ = "^READ^" _                                        ' ML061904
  808.      ELSE CALL MsgProt (MsgTo$,Found,MsgPswd$)                       ' ML061904
  809.      SysopMsg = ZFalse                                               ' ML061904
  810.      ZReply = SaveReplyStatus                                        ' ML061904
  811.      GOSUB 4910                                                      ' ML061904
  812.      MsgRecSave$ = ZMsgRec$
  813.      MsgCorrected = ZFalse
  814.      GOSUB 23100
  815.      ZOutTxt$ = "Adding new msg #" + _
  816.           STR$(HighMsgNumber + 1)
  817.      IF NOT ZLocalUser THEN _
  818.         CALL UpdtCalr (ZOutTxt$,1)
  819.      GOSUB 12978
  820.      ZWasSL = 0
  821.      ZWasN$ = ""
  822.      ZLastIndex = 0
  823.      HighMsgNumber = HighMsgNumber + 1                               ' DA061001
  824. * REPLACING old line(s) by new
  825. 4330 QuickScanMsgs = ZFalse
  826.      ReadMsgs = ZTrue
  827.      HiLiteRec = -1
  828.      ScanMsgs = ZFalse
  829.      MsgStart = 6
  830.      MsgEnd = 100
  831.      IF ZLocalUserMode OR NOT ZLocalUser THEN _
  832.         IF ReadMsgIn$ <> ZActiveMessageFile$ THEN _
  833.            ReadMsgIn$ = ZActiveMessageFile$ : _
  834.            CALL UpdtCalr ("Read Messages in " + ReadMsgIn$,1)
  835.      GOSUB 1300
  836. * ------[ first line different ]------
  837.      GOTO 4350                                                       ' KG022701
  838. '
  839. ' ****  S - COMMAND FROM MAIN MENU (SCAN MESSAGE HEADERS)  ***
  840. '
  841. * DELETING old line(s)
  842. 4338
  843. * REPLACING old line(s) by new
  844. 4360 ZWasLG$(11) = ZWasZ$
  845.      NumMsgsSelected = ZLastIndex
  846. * ------[ first line different ]------
  847.      MsgIndex = ZAnsIndex                                            ' KG022701
  848.      ZLastIndex = 0
  849.      ToRequested = ZFalse
  850.      FromRequested = ZFalse
  851.      IF ZPageLength < 1 THEN _
  852.         ZNonStop = ZTrue
  853. * REPLACING old line(s) by new
  854. 4370 MsgIndex = MsgIndex  + 1                                        ' KG022701
  855. * REPLACING old line(s) by new
  856. * ------[ first line different ]------
  857. 4371 IF MsgIndex <= NumMsgsSelected THEN _                           ' KG022701
  858.         IF LEN(ZUserIn$(MsgIndex)) = 1 AND _                         ' KG073102
  859.            INSTR("Cc",ZUserIn$(MsgIndex)) > 0 THEN _                 ' KG022701
  860.            GOTO 4370 _
  861.         ELSE _
  862.         CALL CheckInt (ZUserIn$(MsgIndex)) : _                       ' KG022701
  863.         IF ZErrCode <> 0 THEN _
  864.            ZWasEL = 4371 : _
  865.            GOTO 13000 _
  866.         ELSE CurMsg = ZTestedIntValue : _
  867.              ZAnsIndex = MsgIndex : _                                ' KG022701
  868.              GOTO 4415
  869. * REPLACING old line(s) by new
  870. * ------[ first line different ]------
  871. 4400 GOSUB 12932                                                     ' KG022701
  872.      IF ZWasQ = 0 THEN _
  873.         RETURN
  874. * REPLACING old line(s) by new
  875. * ------[ first line different ]------
  876. 4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _                          ' KG022701
  877.         IF INSTR("Qq",ZUserIn$) THEN _
  878.            RETURN _
  879.         ELSE IF INSTR("Hh?",LEFT$(ZUserIn$(ZAnsIndex),1)) THEN _     ' KG081302
  880.                 ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _
  881.                 GOSUB 1790 : _
  882.                 GOTO 4390
  883.      MsgIndex = 0                                                    ' KG022701
  884.      NumMsgsSelected = ZWasQ
  885.      GOTO 4370
  886. * REPLACING old line(s) by new
  887. 4416 IF INSTR("Mm",ZUserIn$(ZAnsIndex)) THEN _
  888.         AddressedToUser = ZTrue : _
  889.         GOTO 4370
  890.      ZWasA = INSTR("FfTt",ZUserIn$(ZAnsIndex))
  891.      IF ZWasA > 0 THEN _
  892.         ToRequested = (ZWasA > 2) : _
  893.         FromRequested = (ZWasA < 3) : _
  894.         GOTO 4370
  895.      IF CurMsg = 0 THEN _
  896.         IF SearchHeader$ <> "" THEN _
  897.            GOTO 4370 _
  898. * ------[ first line different ]------
  899.         ELSE SearchString$ = ZUserIn$(ZAnsIndex) : _                 ' KG022701
  900.              CALL AllCaps (SearchString$) : _
  901.              CALL Remove (SearchString$,CHR$(34) + CHR$(39)) : _
  902.              SearchHeader$ = SearchString$ : _
  903.              SubInHeader$ = SearchHeader$ : _
  904.              GOTO 4370
  905.      CALL SkipLine (1)
  906. * REPLACING old line(s) by new
  907. 4600   IF ScanMsgs THEN _
  908.           GOSUB 8020 : _
  909.           GOTO 4630
  910.        IF NOT JustSearching THEN _
  911.           GOSUB 8000 : _
  912.           IF QuotedReply THEN _
  913.              QuotedReply = ZFalse : _
  914. * ------[ first line different ]------
  915.              GOTO 4603                                               ' KG081303
  916.        IF ZRet THEN _
  917.           GOTO 4630
  918.        CanChangeSec = (ZUserSecLevel => ZSecChangeMsg)
  919.        ShowKill =  - ((ZUserSecLevel >= ZOptSec(9)) AND (UserInHeader OR CanKill)) ' KG081601
  920.        IF ZExpertUser THEN _
  921.           WasA1$ = ",H,R,T,=,+,-" + _                                ' KG081303
  922.                 MID$(",F",1,- (UserInHeader OR CanChangeSec) * 2) + _
  923.                 MID$(",K",1,ShowKill * 2) + _                        ' KG081601
  924.                 MID$(",U",1,- (ZUserSecLevel >= ZOptSec(54)) * 2) + _
  925.                 MID$(",S",1, - CanChangeSec * 2) : _                 ' KG081303
  926.           GOTO 4602                                                  ' KG081303
  927. * INSERTING new line(s)
  928. 4601   WasA1$ = ",H)lp,R)eply,T)hread,=,+,-" + _                     ' KG081901
  929.                 MID$(",F)wd",1, - (UserInHeader OR CanChangeSec) * 5) + _
  930.                 MID$(",K)ill",1, ShowKill * 6) + _                   ' KG081601
  931.                 MID$(",U)sr",1,- (ZUserSecLevel >= ZOptSec(54)) * 6) + _ ' KG081303
  932.                 MID$(",S)ec",1, - CanChangeSec * 5)
  933. 4602   ZTurboKey = -ZTurboKeyUser                                    ' KG081303
  934.        IF JustSearching OR NOT JustReplied THEN _
  935.           GOTO 4603                                                  ' KG081303
  936.        JustReplied = ZFalse
  937.        CALL AskMore (WasA1$,ZTrue,ZFalse,ZAnsIndex,ZFalse)
  938.        CALL SkipLine (1)
  939.        IF ZNo THEN _
  940.           RETURN
  941.        CALL AllCaps (ZUserIn$(1))                                    ' KG081303
  942.        ZReply = (ZReply OR ZUserIn$(1) = "R")                        ' KG081303
  943.        IF ZUserIn$(1) <> "=" THEN _                                  ' KG081303
  944.           GOTO 4605                                                  ' KG081303
  945.        CALL SkipLine (1)
  946. 4603   IF NOT ZPswdFailed THEN _                                     ' KG081303
  947.           GOTO 4604                                                  ' KG081303
  948.        IF WasPG AND (NOT ZNonStop) THEN _
  949.           ZAttemptsAllowed = 2 : _
  950.           ZSubParm = 2 : _
  951.           CALL PassWrd
  952.        IF ZPswdFailed THEN _                                         ' KG081303
  953.           GOTO 4629
  954. 4604   GOSUB 9000                                                    ' KG081303
  955.        JustReplied = ZFalse
  956.        DontPrint = ZFalse
  957.        IF JustSearching THEN _
  958.           GOTO 4629
  959.        IF ZAnsIndex > NumMsgsSelected THEN _
  960.           GOTO 4650
  961.        CALL SkipLine (1)
  962.        GOSUB 41000                                                   ' KG081303
  963.        ZKillMessage = ZFalse
  964.        ZReply = ZFalse
  965.        IF ZNonStop THEN _
  966.           GOTO 4629
  967.        ZTurboKey = -ZTurboKeyUser                                    ' KG081303
  968.        CALL AskMore (WasA1$,ZTrue,ZFalse,WasXX,ZFalse)
  969.        IF ZNo THEN _
  970.           ZAnsIndex = ZLastIndex + 1 : _
  971.           RETURN
  972.        CALL AllCaps(ZUserIn$(1))
  973.        ZReply = (ZReply OR ZUserIn$(1) ="R")
  974. 4605   ON INSTR(" FUST+-KRH?=",LEFT$(ZUserIn$(1),1)) GOTO _          ' KG081303
  975.           4620,4606,4607,4608,4609,4610,4610,4611,4621,4612,4601,4613 ' KG081303
  976.        GOTO 4620                                                     ' KG081303
  977. 4606   IF NOT (UserInHeader OR CanChangeSec) THEN _   ' Forward      ' KG081303
  978.           GOTO 4620                                                  ' KG081303
  979.        MsgFwd = ZTrue
  980.        GOTO 4623
  981. 4607   IF ZUserSecLevel < ZOptSec(54) THEN _    ' User edit          ' KG081303
  982.           GOTO 4620                                                  ' KG081303
  983.        EditFromRead = 1
  984.        ZReply=ZTrue
  985.        CALL PutMsgAttr
  986.        TempHashValue$ = MsgFrom$
  987.        CALL Trim (TempHashValue$)
  988.        IF TempHashValue$ = "SYSOP" THEN _
  989.           TempHashValue$ = ZSysopPswd1$ + " " + ZSysopPswd2$
  990.        GOTO 11000
  991. 4608   IF CanChangeSec THEN _            ' Security to read          ' KG081303
  992.           CALL PutMsgAttr : _
  993.           GOSUB 4665 : _
  994.           ZReply = ZFalse : _
  995.           QuotedReply = ZTrue : _
  996.           CALL GetMsgAttr : _
  997.           DontPrint = ZTrue : _
  998.           ZUserIn$ = "=" : _
  999.           JustReplied = ZTrue : _
  1000.           GOTO 4560
  1001.        GOTO 4620                                                     ' KG081303
  1002. 4609   CALL SetThread (CurMsg, OrigSubject$)     ' Thread            ' KG081303
  1003.        IF ZWasQ > 0 THEN _
  1004.           SearchHeader$ = ZUserIn$(2) : _
  1005.           SubInHeader$ = SearchHeader$ : _
  1006.           CALL Trim (SubInHeader$) : _
  1007.           GOTO 4352
  1008.        GOTO 4620                                                      ' KG081303
  1009. * REPLACING old line(s) by new
  1010. * ------[ first line different ]------
  1011. 4610   ZWasA = INSTR(" +-",ZUserIn$(1))      ' +/- read direction     ' KG081303
  1012.        CurMsg = CurMsg + 5 - 2 * ZWasA                                ' KG081303
  1013.        Forward = (ZWasA = 2)
  1014.        Reverse = (NOT Forward)
  1015.        SearchString$ = ""
  1016.        IF Reverse THEN _
  1017.           GOTO 4490 _
  1018.        ELSE GOTO 4450
  1019. * REPLACING old line(s) by new
  1020. * ------[ first line different ]------
  1021. 4611   IF (UserInHeader OR CanKill) THEN _     ' Kill                ' KG081303
  1022.          IF ZUserSecLevel >= ZOptSec(9) THEN _
  1023.             CALL PutMsgAttr : _
  1024.             MsgToKill = CurMsg : _
  1025.             Temp = ZWasQ : _
  1026.             GOSUB 3950 : _
  1027.             CALL GetMsgAttr : _
  1028.             GOTO 4629 _
  1029.          ELSE ZViolation$ = "MORE KILL" : _
  1030.               GOSUB 1380 : _
  1031.               GOTO 4629
  1032.        GOTO 4620                                                     ' KG081303
  1033. * INSERTING new line(s)
  1034. 4612   ZFileName$ = ZHelp$(7)  ' H - help                            ' KG081303
  1035.        GOSUB 1790                                                    ' KG081303
  1036.        GOTO 4601                                                     ' KG081303
  1037. * REPLACING old line(s) by new
  1038. * ------[ first line different ]------
  1039. 4613   CALL SkipLine (1) ' = read again                              ' KG081303
  1040.        GOTO 4560                                                     ' KG081303
  1041. * DELETING old line(s)
  1042. 4614
  1043. 4616
  1044. 4617
  1045. 4618
  1046. * REPLACING old line(s) by new
  1047. * ------[ first line different ]------
  1048. 4621   IF ZUserSecLevel < ZOptSec(5) THEN _     ' Reply
  1049.           ZViolation$ = "MORE RE" : _
  1050.           GOSUB 1380 : _
  1051.           ZReply = ZFalse : _
  1052.           GOTO 4629
  1053.        IF LEFT$(OrigSubject$,3) <> "(R)" THEN _                      ' ML062202
  1054.           OrigSubject$ = "(R)" + _
  1055.                      LEFT$(OrigSubject$,22)
  1056. * REPLACING old line(s) by new
  1057. * ------[ first line different ]------
  1058. 4650 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)                        ' KG081404
  1059.      CALL SkipLine (1)                                               ' KG082102
  1060.      CALL QuickTPut1 ("--End Msgs--")                                ' KG081404
  1061.      RETURN
  1062. * REPLACING old line(s) by new
  1063. 4660 IF RemoteSysop THEN _
  1064.         CALL MsgNameMatch ("SYSOP",SysopFullName$,6,MsgFromCaller) : _
  1065.         CALL MsgNameMatch ("SYSOP",SysopFullName$,37,MsgToCaller) _
  1066. * ------[ first line different ]------
  1067.      ELSE WasX$ = LEFT$("SYSOP",-5*ZSysop) : _                       ' KG060903
  1068.           CALL MsgNameMatch (MsgUserName$,WasX$,6,MsgFromCaller) : _ ' KG060903
  1069.           CALL MsgNameMatch (MsgUserName$,WasX$,37,MsgToCaller)      ' KG060903
  1070.      UserInHeader = (MsgFromCaller OR MsgToCaller)
  1071.      RETURN
  1072. '
  1073. ' ****  S - CHANGE MESSAGE SECURITY   ***
  1074. '
  1075. * REPLACING old line(s) by new
  1076. 4710 ZOutTxt$ = "Page " + _
  1077.           ZSysopFirstName$ + _
  1078.           " (Y/[N])"
  1079.      CALL SkipLine (1)
  1080.      GOSUB 12999
  1081.      IF NOT ZYes THEN _
  1082.         RETURN
  1083.      PageCount = 0
  1084.      ZOutTxt$ = "Paging " + _
  1085. * ------[ first line different ]------
  1086.           ZSysopFirstName$                                           ' KG071301
  1087.      GOSUB 12978
  1088.      PageTimeStart! = TIMER
  1089. * REPLACING old line(s) by new
  1090. 4755 CALL QuickTPut1 ("Try a msg or comment")
  1091. * ------[ first line different ]------
  1092.      ZPageStatus$ = "PG!"                                            ' DA080902
  1093.      CALL UpdtCalr ("Operator paged " + LEFT$(TIME$,5),2)
  1094.      RETURN
  1095. * REPLACING old line(s) by new
  1096. * ------[ first line different ]------
  1097. 4900 CALL UpdtCalr ("Entered " + ZConfName$,2)                       ' KG052702
  1098.      CALL QuickTPut1 ("Welcome to " + ZConfName$)
  1099. * REPLACING old line(s) by new
  1100. 5301 ZStackC = ZTrue
  1101.      CALL SubMenu ("What conference, L)ist, M)ain ([ENTER] quits)",_
  1102.          WasA1$,MsgDrvPath$,_
  1103. * ------[ first line different ]------
  1104.          "M.DEF","M",ZUserGraphicDefault$,ZTrue,ZFalse,ZFalse,"C.DEF",WasX) ' KG032502
  1105.      IF ZWasQ = 0 THEN _
  1106.         RETURN
  1107.      IF ZSubParm = -1 THEN _
  1108.         RETURN 10595
  1109. * REPLACING old line(s) by new
  1110. 5335 IF Found THEN _
  1111.         GOSUB 9500 : _
  1112.         ZMainUserFileIndex = -(SubBoard * ZUserFileIndex)_
  1113.                                -((NOT SubBoard) * ZMainUserFileIndex) : _
  1114.         Temp = -(SubBoard * ZMinLogonSec) _
  1115.                -((NOT SubBoard) * AutoAddSec) : _
  1116.         WasI = (ZUserSecLevel < OrigMainSec) : _
  1117.         WasJ = (ZUserSecLevel < Temp) : _
  1118.         WasK = (WasI AND WasJ) : _
  1119.         IF WasK THEN _
  1120.            ZOutTxt$ = "you have been locked out of" : _
  1121.            GOTO 5341 _
  1122.         ELSE GOSUB 5375 : _
  1123.              GOTO 5345
  1124. '
  1125. ' **** USER NOT FOUND.  AUTO-ADD TO SUBBOARD IF SUFFICIENT SECURITY ***
  1126. '
  1127.      ZNewUser = SubBoard
  1128.      IF SubBoard THEN _
  1129.         AutoAddSec = ZMinLogonSec
  1130. * ------[ first line different ]------
  1131.      IF (ZOrigSec >= AutoAddSec) AND _                               ' KG080601
  1132.         (ZUserFileIndex > 0) AND (ZMainUserFileIndex > 0) THEN _
  1133.         LSET ZUserRecord$ = UserRecordHold$ : _
  1134.         CALL QuickTPut1 ("MEMBER privileges granted in " + ZConfName$) : _
  1135.         MID$(ZUserOption$,3,2) = MKI$(0) : _
  1136.         MID$(ZUserOption$,1,2) = MKI$(0) : _
  1137.         ZActiveUserName$ = LEFT$(UserRecordHold$,30) : _
  1138.         CALL Trim (ZActiveUserName$) : _
  1139.         Temp = -(SubBoard * ZDefaultSecLevel) _
  1140.                -((NOT SubBoard) * ZUserSecSave) : _
  1141.         GOSUB 5370 : _
  1142.         Temp = -(ZWasA * ZSysopSecLevel) - ((NOT ZWasA) * Temp) : _
  1143.         LSET ZSecLevel$ = MKI$(Temp) : _
  1144.         ZUserSecLevel = Temp : _
  1145.         GOSUB 5375 : _
  1146.         ZPageLength = ZPageLengthDef : _
  1147.         GOSUB 12986 : _
  1148.         GOSUB 12630 : _
  1149.         UpdateDate = ZTrue : _
  1150.         Found = ZTrue : _
  1151.         GOTO 5335
  1152.      IF ZOrigSec >= AutoAddSec THEN _                                ' KG080601
  1153.         CALL QuickTPut1 ("GUEST privileges granted in " + ZConfName$) : _
  1154.         ZActiveUserFile$ = PrevUser$ : _
  1155.         UpdateDate = ZFalse : _
  1156.         ZUserFileIndex = PrevIndex : _
  1157.         GOSUB 5382 : _
  1158.         ZUserFileIndex = 0 : _
  1159.         GOTO 5345
  1160.      ZNewUser = ZFalse
  1161. * REPLACING old line(s) by new
  1162. 5348 GOSUB 12987
  1163.      GOSUB 12990
  1164.      IF SubBoard THEN _
  1165.         ZHasDoored = ZFalse : _
  1166.         ZActiveFMSDir$ = "" : _
  1167. * ------[ first line different ]------
  1168.         ZTimeLoggedOn$ = TIME$ : _                                   ' KG070601
  1169.         BoardCheckDate$ = LEFT$("00-00-00",-ZNewUser*8) + _          ' KG081001
  1170.                           LEFT$(ZLastDateTimeOn$,-(NOT ZNewUser)*8) : _  ' KG081001
  1171.         RETURN 108
  1172.      GOSUB 827
  1173.      IF UpdateDate THEN _
  1174.         BoardCheckDate$ = ZLastDateTimeOn$ : _
  1175.         ZTimeLoggedOn$ = TIME$ : _                                   ' KG070601
  1176.         LSET ZLastDateTimeOn$ = ZCurDate$ + _
  1177.                                   " " + _
  1178.                                   ZTimeLoggedOn$ : _
  1179.         GOSUB 9440 : _
  1180.         GOSUB 12991
  1181.      IF PrevUSL <> ZUserSecLevel THEN _
  1182.         CALL SetPrompt
  1183.      GOSUB 1241
  1184.      RETURN 852
  1185. '
  1186. ' ****  JOIN M)AIN   ***
  1187. '
  1188. * REPLACING old line(s) by new
  1189. 5350 IF ZConfName$ <> "MAIN" THEN _
  1190. * ------[ first line different ]------
  1191.         CALL QuickTPut1 ("Rejoining " + OrigMsgName$)                ' KG082003
  1192.      ConfFileName$ = OrigMsgName$
  1193.      ZNewsFileName$ = OrigNewsFileName$
  1194.      TurboLogon = ZTrue
  1195.      ZWasQ = 0
  1196.      ZInConfMenu = ZTrue
  1197.      IF ZActiveUserName$ = "SYSOP" THEN _
  1198.         ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$ : _
  1199.         CALL Trim (ZActiveUserName$)
  1200.      ZConfigFileName$ = ZOrigCnfg$
  1201.      CALL ReadDef (ZConfigFileName$)
  1202.      IF ZOrigMsgFile$ <> ZActiveMessageFile$ THEN _
  1203.         ZActiveMessageFile$ = ZOrigMsgFile$ : _
  1204.         GOSUB 5343
  1205.      IF ZOrigUserFile$ <> ZActiveUserFile$ THEN _
  1206.         GOSUB 5380 : _
  1207.         ZActiveUserFile$ = ZOrigUserFile$ : _
  1208.         ZActiveUserName$ = ZOrigUserName$ : _
  1209.         GOSUB 12598 : _
  1210.         GOSUB 12990 : _
  1211.         IF Found THEN _
  1212.            GOSUB 9500 : _
  1213.            ZMainUserFileIndex = ZUserFileIndex : _
  1214.            CALL SetPrompt : _
  1215.            CALL XferType (2,ZTrue) _
  1216.         ELSE ZUserFileIndex = 0 : _
  1217.              ZMainUserFileIndex = 0
  1218.      CALL UpdtCalr ("Exited " + ZConfName$,2)                        ' KG082003
  1219.      ZConfName$ = "MAIN"                                             ' KG082003
  1220.      GOSUB 2350
  1221.      ZUplds = ZGlobalUplds
  1222.      ZDnlds = ZGlobalDnlds
  1223.      ZDLToday! = ZGlobalDLToday!
  1224.      ZBytesToday! = ZGlobalBytesToday!
  1225.      ZDLBytes! = ZGlobalDLBytes!
  1226.      ZULBytes! = ZGlobalULBytes!
  1227. * REPLACING old line(s) by new
  1228. 5400 CALL SkipLine(2)
  1229. * ------[ first line different ]------
  1230.      CALL QuickTPut1 ("Your PROFILE")                                ' KG072603
  1231. * REPLACING old line(s) by new
  1232. 8040 IF LEN(MsgTo$) < 23 THEN _
  1233.         MsgTo$ = MsgTo$ + _
  1234.                       SPACE$(23 - LEN(MsgTo$))
  1235.      Subject$ = MID$(ZMsgRec$,76,25)
  1236.      CALL Trim (Subject$)
  1237. * ------[ first line different ]------
  1238.      CALL AllCaps (Subject$)                                         ' KG051501
  1239.      OrigSubject$ = Subject$
  1240.      IF ZPswdFailed THEN _
  1241.         Subject$ = WasSJ$
  1242. * REPLACING old line(s) by new
  1243. 9085    IF LEFT$(ZOutTxt$,1) = ZStartOfHeader$ OR _
  1244.            LEFT$(ZOutTxt$,LEN(ZScreenOutMsg$)) = ZScreenOutMsg$ THEN _
  1245.            GOTO 9050
  1246.         ZOutTxt$(ZLinesInMsg) = ZOutTxt$
  1247.         IF Bracketed THEN _
  1248.            Bracketed = ZFalse : _
  1249.            HiLitedLine = ZLinesInMsg
  1250.         ZLinesInMsg = ZLinesInMsg + 1
  1251.         IF ZLinesInMsg > MsgDimXtra THEN _
  1252.            ZLinesInMsg = ZLinesInMsg - 1 : _
  1253.            CALL SkipLine (1) : _
  1254.            CALL QuickTPut1 ("Message too long.  Truncated to " + STR$(MsgDimXtra) + " lines!") : _
  1255.            ZOutTxt$ = "" : _
  1256.            RETURN
  1257. * ------[ first line different ]------
  1258.         IF NOT DontPrint THEN _                                      ' KG030201
  1259.            GOSUB 12979 : _                                           ' KG030201
  1260.            IF ZRet THEN _
  1261.               ZOutTxt$ = "" : _
  1262.               RETURN _                                               ' KG030201
  1263.            ELSE CALL AskMore ("",ZTrue,ZTrue,ZAnsIndex,ZFalse) : _   ' KG030201
  1264.                 IF ZNo THEN _                                        ' KG030201
  1265.                    DontPrint = ZTrue                                 ' KG030201
  1266.         GOTO 9050
  1267. * REPLACING old line(s) by new
  1268. 9701 CALL SubMenu ("Read what bulletin(s), L)ist, S)ince, N)ews ([ENTER] = none)",_
  1269.                    WasA1$, ZBulletinPrefix$,"",ReturnOn$,_
  1270. * ------[ first line different ]------
  1271.                    ZUserGraphicDefault$,ZFalse,ZFalse,ZFalse,"",WasX) ' KG032502
  1272.      IF ZWasQ = 0 THEN _
  1273.         RETURN
  1274.      CALL CheckCarrier
  1275.      IF ZSubParm = -1 THEN _
  1276.         RETURN 10595
  1277.      IF (ZWasZ$ = "*" OR ZWasZ$ = "S") THEN _
  1278.         ZPrevPrefix$ = "" : _
  1279.         GOTO 9760
  1280.      ZStopInterrupts = ZFalse
  1281.      IF ZWasZ$ = "N" THEN _
  1282.         GOSUB 1242 : _
  1283.         IF WasZ <> 0 THEN _
  1284.            CALL QuickTPut1 ("No NEWS available") : _
  1285.            GOTO 9701 _
  1286.         ELSE GOTO 9703
  1287.      CALL BufFile (ZFileName$,ZAnsIndex)
  1288. * REPLACING old line(s) by new
  1289. 9760 ' ****  [entry when want review plus chance to read] *********
  1290.      GOSUB 9750
  1291.      IF NumNewBullets > 0 THEN _
  1292.         ZLastIndex = NumNewBullets + 1 : _
  1293. * ------[ first line different ]------
  1294.         ZOutTxt$ = "Read ALL new bulletins ([Y],N)" : _              ' DA071701
  1295.         GOSUB 12999 : _
  1296.         IF NOT ZNo THEN _
  1297.            ZAnsIndex = 1: _
  1298.            GOTO 9700
  1299.      ZLastIndex = 0
  1300.      IF ZAnsIndex < 1 THEN _
  1301.         RETURN
  1302.      GOTO 9701
  1303. '
  1304. ' *  W - COMMAND FROM MAIN MENU (WHO'S ON THE OTHER NODES)
  1305. '
  1306. * REPLACING old line(s) by new
  1307. 10097 IF WasI > HighestUserRecord OR ZRet THEN _
  1308.          GOTO 10099
  1309.       GET 5,WasI
  1310.       WasX$ = MID$(ZUserRecord$,ZStartHash,ZLenHash)
  1311. * ------[ first line different ]------
  1312.       IF ASC(WasX$)=0 OR LEFT$(WasX$,3)="   " THEN _                 ' KG073101
  1313.          GOTO 10098
  1314.       IF INSTR(WasX$,ZWasZ$) > 0 OR ZSysopSecLevel <= CVI(MID$(ZUserRecord$,47,2)) THEN _
  1315.          IF NOT ZSysop THEN _
  1316.             GOTO 10098
  1317.       CALL AskMore ("",ZTrue,ZTrue,WasXX,ZFalse)
  1318.       IF ZNo OR ZSubParm = -1 THEN _
  1319.          GOTO 10099
  1320.       ZOutTxt$ = LEFT$(WasX$,36) + ZCityState$ + ZLastDateTimeOn$
  1321.       GOSUB 12979
  1322. * REPLACING old line(s) by new
  1323. 10570 IF MinsRemaining > 1 AND (ZTurboKeyUser OR NOT ZExpertUser) THEN _
  1324. * ------[ first line different ]------
  1325.          ZOutTxt$ = "Log off (Y,[N])" : _                            ' DA071701
  1326.          GOSUB 12930 : _
  1327.          IF NOT ZYes THEN _
  1328.             RETURN
  1329.       GetOut = ZTrue
  1330.       GOTO 10560
  1331. * REPLACING old line(s) by new
  1332. 10970 IF NOT ZDoorsAvail OR _
  1333.          (ZRequiredRings = 0 AND NOT ZNoDoorProtect) THEN _
  1334. * ------[ first line different ]------
  1335.          CALL QuickTPut1 ("No doors available") : _                  ' KG072604
  1336.          RETURN
  1337.       IF ZTimeLock AND 1 AND NOT ZHasDoored THEN _
  1338.          CALL TimeLock : _
  1339.          IF NOT ZOK THEN _
  1340.             RETURN
  1341. * REPLACING old line(s) by new
  1342. 10974 WasA1$ = ZMenu$(5)
  1343.       CALL Talk (5,ZOutTxt$)
  1344.       ZStackC = ZTrue
  1345.       CALL SubMenu ("Open which door, L)ist" + ZPressEnterExpert$, _
  1346.                     WasA1$,"",".BAT","",_
  1347. * ------[ first line different ]------
  1348.                     ZUserGraphicDefault$,ZTrue,ZFalse,ZFalse,"",InMenu) ' KG032502
  1349.       IF ZWasQ = 0 THEN _
  1350.          RETURN
  1351.       IF ZSubParm = -1 THEN _
  1352.          RETURN 10595
  1353. * REPLACING old line(s) by new
  1354. 10986 ZWasZ$ = ZFileName$
  1355. * ------[ first line different ]------
  1356.       CALL DoorExit (NOT InMenu)                                     ' KG032502
  1357.       GOTO 10974                                                     ' KG032502
  1358. '
  1359. ' *  5 - COMMAND FROM SYSOP MENU (USER FILE MAINTENANCE)
  1360. '
  1361. * REPLACING old line(s) by new
  1362. 11000 WasTU = ZUserFileIndex
  1363.       CALL DefaultU
  1364.       UserRecordHold$ = ZUserRecord$
  1365.       RegDateHold$ = ZRegDate$
  1366. * ------[ first line different ]------
  1367.       UserSecLevelSave = ZUserSecLevel                               ' ML062201
  1368. * REPLACING old line(s) by new
  1369. 11001 ZStopInterrupts = ZTrue
  1370.       WasI = 1
  1371.       ScanUsers = ZFalse
  1372. * ------[ first line different ]------
  1373.       IF EditFromRead = 1 THEN GOTO 11341                            ' KG070901
  1374.       ZOutTxt$ = "A)dd, L)st, P)rt, M)od, S)can users"
  1375.       GOSUB 12930                                                    ' KG070901
  1376. * REPLACING old line(s) by new
  1377. 11003 IF ZWasQ = 0 THEN _
  1378.       IF EditFromRead > 0 THEN _
  1379.          GOTO 11325 _
  1380.       ELSE _
  1381.          ZUserFileIndex = WasTU : _
  1382.          GOTO 20093
  1383.       WasQQ = 0
  1384. * ------[ first line different ]------
  1385.       ZWasZ$ = LEFT$(ZUserIn$(ZAnsIndex),1)                          ' KG070901
  1386.       CALL AllCaps (ZWasZ$)
  1387.       IF ZWasZ$ = "A" THEN _
  1388.          GOTO 12300 _
  1389.       ELSE IF ZWasZ$ = "M" THEN _
  1390.               ZStopInterrupts = ZTrue _
  1391.            ELSE IF ZWasZ$ = "P" THEN _
  1392.                    WasQQ = ZTrue _
  1393.                 ELSE IF ZWasZ$ = "S" THEN _
  1394.                         ScanUsers = ZTrue : _
  1395.                         ZStopInterrupts = ZTrue _
  1396.                      ELSE IF ZWasZ$ <> "L" THEN _
  1397.                              GOTO 11001
  1398. * REPLACING old line(s) by new
  1399. 11005 CALL OpenUser (HighestUserRecord)
  1400.       GOSUB 9450
  1401.       WasZ = 1
  1402.       IF ScanUsers THEN _
  1403.          ZOutTxt$ = "Scan for N)ame, P)wd, C)" + ZUserLocation$ + ", L)evel" + _
  1404.               LEFT$(", H)ash id",-9*(ZStartHash > 1 AND ZLenHash > 0)) : _
  1405. * ------[ first line different ]------
  1406.          GOSUB 12930 : _                                             ' KG070901
  1407.          ZOutTxt$ = "" : _
  1408.          ScanFunction$ = LEFT$(ZUserIn$(1),1) : _
  1409.          CALL AllCaps (ScanFunction$) : _
  1410.          ZCR = 0 : _
  1411.          GOSUB 12979 : _
  1412.          GOSUB 12966 : _
  1413.          GOTO 12962
  1414. * REPLACING old line(s) by new
  1415. 11110   ZOutTxt$ = "D)el,F)ind,M)enu,N)ewPW,P)rnt,R)eset gr,Q)uit,S)ecLvl,U)ser#,X)fer"
  1416.         IF ZRestrictByDate THEN _
  1417.            ZOutTxt$ = ZOutTxt$ + _
  1418.                 ",$)RegDate"
  1419. * ------[ first line different ]------
  1420.         GOSUB 12930                                                  ' KG070901
  1421.         IF NOT ScanUsers AND ZWasQ = 0 THEN _
  1422.            GOTO 11310
  1423. * REPLACING old line(s) by new
  1424. * ------[ first line different ]------
  1425. 11115   ZWasZ$ = LEFT$(ZUserIn$(ZAnsIndex),1)                        ' KG070901
  1426.         CALL AllCaps (ZWasZ$)
  1427.         WasX = INSTR("DNPQFSMR$UX",ZWasZ$)
  1428.         IF ZWasZ$ = "" AND ScanUsers THEN _
  1429.            GOTO 12965
  1430.         ON WasX GOTO 11130,11160,11220,11320,11340,11390,11330,11400,11450,11127,11490
  1431.         GOTO 11110
  1432. * REPLACING old line(s) by new
  1433. 11127   ZOutTxt$ = "What record #"
  1434. * ------[ first line different ]------
  1435.         GOSUB 12932                                                  ' KG070901
  1436.         GOTO 11125
  1437. '
  1438. ' *  D - COMMAND FROM 5- USER MAINTENANCE OPTIONS (DELETE USER)
  1439. '
  1440. * REPLACING old line(s) by new
  1441. 11340 ZOutTxt$ = ZPromptHash$ + _
  1442.            " to find"
  1443.       CALL SkipLine (1)
  1444. * ------[ first line different ]------
  1445.       ZParseOff = ZTrue                                              ' KG070901
  1446.       GOSUB 12932                                                    ' KG070901
  1447.       IF ZWasQ = 0 THEN _
  1448.          GOTO 11340
  1449.       TempHashValue$ = ZUserIn$
  1450. * REPLACING old line(s) by new
  1451. 11395 ZOutTxt$ = "New sec level"
  1452. * ------[ first line different ]------
  1453.       GOSUB 12932                                                    ' KG070901
  1454.       ZWasZ$ = ZUserIn$(ZAnsIndex)                                   ' KG070901
  1455.       WasOF = VAL(ZWasZ$)
  1456.       IF WasOF > ZUserSecLevel THEN _
  1457.          WasOF = ZUserSecLevel
  1458.       RETURN
  1459. '
  1460. ' *  R - COMMAND FROM 5- USER MAINTENANCE OPTIONS (RESET USER GRAPHICS)
  1461. '
  1462. * REPLACING old line(s) by new
  1463. 11450 ZOutTxt$ = "Enter new registration date (MM-DD-YY)"
  1464. * ------[ first line different ]------
  1465.       GOSUB 12932                                                    ' KG070901
  1466.       IF ZWasQ = 0 THEN _
  1467.          GOTO 11015
  1468. * REPLACING old line(s) by new
  1469. * ------[ first line different ]------
  1470. 11455 WorkDate$ = ZUserIn$(ZAnsIndex)                                ' KG070901
  1471.       IF LEN(WorkDate$) < 8 THEN _
  1472.          GOTO 11450
  1473.       GOSUB 11470
  1474.       IF NOT ZOK THEN _
  1475.          GOTO 11450
  1476.       LSET ZUserOption$ = LEFT$(ZUserOption$,10) + _
  1477.                            ZRegDate$ + _
  1478.                            MID$(ZUserOption$,13)
  1479.       GOSUB 11480
  1480.       ZRegDate$ = RegDateHold$
  1481.       GOTO 11290
  1482. '
  1483. ' *  CALCULATE REGISTRATION DATES
  1484. '
  1485. * REPLACING old line(s) by new
  1486. 12300 WasA1$ = ""
  1487. * ------[ first line different ]------
  1488.       Attempts = 0                                                   ' ML062201
  1489.       FirstNameSave$ = ZFirstName$
  1490.       LastNameSave$ = ZLastName$
  1491.       ActiveUserNameSave$ = ZActiveUserName$
  1492.       CityStateSave$ = ZWasCI$
  1493.       HashValueSave$ = HashValue$
  1494.       IndivValueSave$ = ZIndivValue$                                 ' RC050901
  1495.       GOSUB 12500
  1496.       GOSUB 12840
  1497.       GOSUB 12850
  1498.       GOSUB 12598
  1499.       IF ZUserFileIndex = 0 THEN _
  1500.          GOSUB 12984 : _
  1501.          GOTO 12330
  1502.       IF Found THEN _
  1503.          WasD$ = "User already exists" : _
  1504.          GOSUB 1315 : _
  1505.          GOSUB 12984 : _
  1506.          GOTO 12330
  1507. * REPLACING old line(s) by new
  1508. 12310 GOSUB 12630
  1509.       GOSUB 12800
  1510.       GOSUB 11395
  1511.       ZTempSecLevel = WasOF
  1512.       GOSUB 12900
  1513.       LSET ZLastDateTimeOn$ = ZCurDate$ + _
  1514.                                 " " + _
  1515.                                 ZTimeLoggedOn$
  1516.       GOSUB 12960
  1517.       CALL AllCaps (ZUserIn$)
  1518.       LSET ZCityState$ = ZUserIn$
  1519.       LSET ZElapsedTime$ = MKI$(0)
  1520.       IF ZStartHash > 1 THEN _
  1521.          MID$(ZUserRecord$,ZStartHash,ZLenHash) = HashValue$
  1522.       IF ZStartIndiv > 1 THEN _
  1523. * ------[ first line different ]------
  1524.          MID$(ZUserRecord$,ZStartIndiv,ZLenIndiv) = ZIndivValue$     ' RC050901
  1525.       GOSUB 9440
  1526. * REPLACING old line(s) by new
  1527. 12330 ZUserSecLevel = UserSecLevelSave
  1528.       ZFirstName$ = FirstNameSave$
  1529.       ZLastName$ = LastNameSave$
  1530.       ZActiveUserName$ = ActiveUserNameSave$
  1531.       ZWasCI$ = CityStateSave$
  1532.       HashValue$ = HashValueSave$
  1533. * ------[ first line different ]------
  1534.       ZIndivValue$ = IndivValueSave$                                 ' RC050901
  1535.       ZUserFileIndex = WasTU
  1536.       LSET ZUserRecord$ = UserRecordHold$
  1537.       GOTO 11001
  1538. '
  1539. ' *  GET USER First AND Last NAMES
  1540. '
  1541. * REPLACING old line(s) by new
  1542. 12570 Found = ZFalse
  1543.       CALL OpenWork (2,ZTrashcanFile$)
  1544. * ------[ first line different ]------
  1545.       IF ZErrCode <> 0 THEN _                                        ' KG032601
  1546.          ZErrCode = 0 : _                                            ' KG032601
  1547.          RETURN                                                      ' KG032601
  1548. * REPLACING old line(s) by new
  1549. 12598 TempHashValue$ = HashValue$
  1550. * ------[ first line different ]------
  1551.       TempIndivValue$ = ZIndivValue$                                 ' RC050901
  1552. * REPLACING old line(s) by new
  1553. 12850 IF ZStartIndiv < 1 THEN _
  1554.          RETURN
  1555.       IF ZStartIndiv = 1 THEN _
  1556. * ------[ first line different ]------
  1557.          ZIndivValue$ = ZActiveUserName$ : _                         ' RC050901
  1558.          RETURN
  1559.       IF ZExitToDoors THEN _                                         ' RC050901
  1560.          RETURN                                                      ' RC050901
  1561.       WasX$ = WasA1$ + _
  1562.            ZPromptIndiv$
  1563.       CALL UntilRight (WasX$,ZIndivValue$,2,ZLenIndiv)               ' RC050901
  1564.       RETURN
  1565. '
  1566. ' *  SET NEWUSER DEFAULTS
  1567. '
  1568. * REPLACING old line(s) by new
  1569. * ------[ first line different ]------
  1570. 12978 ZSubParm = 4     ' no cr/lf                                    ' KG081702
  1571.       GOTO 12981
  1572. * REPLACING old line(s) by new
  1573. * ------[ first line different ]------
  1574. 12979 ZSubParm = 5     ' cr/lf                                       ' KG081702
  1575.       GOTO 12981
  1576. * REPLACING old line(s) by new
  1577. 13555 ZActiveMessageFile$ = ZOrigMsgFile$
  1578.       GOSUB 12986
  1579.       GOSUB 5344
  1580.       GET 1,ZNodeRecIndex
  1581.       MID$(ZMsgRec$,57,1) = "I"
  1582.       MID$(ZMsgRec$,40,2) = " 0"
  1583.       MID$(ZMsgRec$,72,2) = " 0"
  1584. * ------[ first line different ]------
  1585.       IF MID$(ZMsgRec$,101,2) = ZCarriageReturn$+ZCarriageReturn$ THEN _ ' KG030602
  1586.          MID$(ZMsgRec$,101,2) = " 0"                                 ' KG030602
  1587.       PUT 1,ZNodeRecIndex
  1588.       GOSUB 12985
  1589.       CLOSE 1,2,4,5
  1590.       IF NOT ZFossil THEN _
  1591.          CLOSE 3
  1592.       IF ZRecycleToDos THEN _
  1593.          GOTO 203
  1594.       RUN 100
  1595. * REPLACING old line(s) by new
  1596. 13600 CLS
  1597.       LOCATE ,,0
  1598. * ------[ first line different ]------
  1599.       CALL PScrn (ZWasDF$ + " file missing/invalid.  Run CONFIG")    ' KG071301
  1600.       CALL DelayTime (3)
  1601.       GOTO 203
  1602. * REPLACING old line(s) by new
  1603. 23100 GET 1,ZNextMsgRec
  1604.       IF MID$(ZMsgRec$,61,1) = ":" THEN _
  1605.          CALL CheckInt (MID$(ZMsgRec$,117,4)) : _
  1606.          IF ZErrCode = 0 AND (ZTestedIntValue > 1) AND (ZTestedIntValue < 100) THEN _
  1607.             WasY = ZTestedIntValue : _
  1608.             CALL CheckInt (MID$(ZMsgRec$,2,4)) : _
  1609.             IF ZErrCode = 0 AND ZTestedIntValue > HighMsgNumber THEN _
  1610.                HighMsgNumber = ZTestedIntValue : _
  1611.                ZNextMsgRec = ZNextMsgRec + WasY : _
  1612. * ------[ first line different ]------
  1613.                CALL QuickTPut1 ("Fixing Msg Header") : _             ' KG071301
  1614.                MsgCorrected = ZTrue : _
  1615.                GOTO 23100
  1616.       RETURN
  1617. '
  1618. ' *  UPDATE MESSAGE HEADER RECORD DATA
  1619. '
  1620. * REPLACING old line(s) by new
  1621. 42852 ZWasZ$ = LEFT$(ZUserIn$(ZAnsIndex),1)
  1622.       CALL AllCaps (ZWasZ$)
  1623.       IF INSTR("ICR",ZWasZ$) = 0 THEN _
  1624.          GOTO 42851
  1625.       ZEchoer$ = ZWasZ$
  1626.       CALL SetEcho (ZEchoer$)
  1627.       GOSUB 9525
  1628. * ------[ first line different ]------
  1629.       RETURN                                                         ' KG071301
  1630. ' *  G - COMMAND FROM UTILITY MENU (GRAPHICS WANTED)
  1631. ' *  Graphic MENUS SELECTION SET FOR NEW USERS
  1632. '
  1633. * DELETING old line(s)
  1634. 42950
  1635. * REPLACING old line(s) by new
  1636. * ------[ first line different ]------
  1637. 43020 ZOutTxt$ = "Text Graphics: " + _                               ' DA071701
  1638.            MID$("None AsciiColor",ZWasGR * 5 + 1,5)
  1639.       GOSUB 12979
  1640.       RETURN
  1641. * REPLACING old line(s) by new
  1642. 43022 IF ZEmphasizeOnDef$ = "" THEN _
  1643.          RETURN
  1644. * ------[ first line different ]------
  1645.       ZOutTxt$ = "Do you want colorized prompts ([Y],N)"             ' DA071701
  1646.       GOSUB 12999
  1647.       ZHiLiteOff = NOT ZNo
  1648.       CALL Toggle(5)
  1649.       RETURN
  1650.